package fl.ass.service.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import fl.ass.facade.dto.AssChnBankAccDTO;
import fl.ass.service.po.AssChnBankAcc;

import java.util.ArrayList;
import java.util.List;

 /**
 * @Description: 拖车渠道银行账户信息表 转换器
 * @Description: 服务层与展现层转换类
 * @Description: 所有的PO只能在持久成和服务层使用
 * @Description: 所有的DTO只能在展现层和服务层使用
 * @Description: 在服务层中向下是DTO转PO,向上是PO转DTO
 */
public class AssChnBankAccTransform {


	/**
	 * PO 转  DTO
	 * @param po AssChnBankAcc
	 * @return AssChnBankAccDTO
	 */
	public static AssChnBankAccDTO toDTO(AssChnBankAcc po) {
		AssChnBankAccDTO  dto = null;
		if (po != null) { 
			dto = new AssChnBankAccDTO();
			dto.setId(po.getId());
			dto.setChannelId(po.getChannelId());//拖车渠道ID
			dto.setBkCd(po.getBkCd());//银行代码（CST0014）
			dto.setAccNm(po.getAccNm());//账户名称
			dto.setAccNo(po.getAccNo());//银行账号
			dto.setAccOrgNm(po.getAccOrgNm());//开户机构
			dto.setBkNo(po.getBkNo());//开户行号
			dto.setAccTypCd(po.getAccTypCd());//账户类型（CST0015）
			dto.setBkRem(po.getBkRem());//备注
			dto.setIsValid(po.getIsValid());//是否有效（1：是，0：否） SYS0018
			dto.setIsDel(po.getIsDel());//是否删除（1：是，0：否）（SYS0021）

			dto.setCrtTm(po.getCrtTm());//创建时间
			dto.setCrtUsrId(po.getCrtUsrId());//创建人
			dto.setMdfTm(po.getMdfTm());//修改时间
			dto.setMdfUsrId(po.getMdfUsrId());//修改人
		}
		return dto;
	}

	/**
	 * DTO 转  PO
	 * @param dto AssChnBankAccDTO
	 * @return AssChnBankAcc
	 */
	public static AssChnBankAcc toPO(AssChnBankAccDTO dto) {
		AssChnBankAcc po = null;
		if (dto != null) {
			po = new AssChnBankAcc();
			po.setId(dto.getId());
			po.setChannelId(dto.getChannelId());//拖车渠道ID
			po.setBkCd(dto.getBkCd());//银行代码（CST0014）
			po.setAccNm(dto.getAccNm());//账户名称
			po.setAccNo(dto.getAccNo());//银行账号
			po.setAccOrgNm(dto.getAccOrgNm());//开户机构
			po.setBkNo(dto.getBkNo());//开户行号
			po.setAccTypCd(dto.getAccTypCd());//账户类型（CST0015）
			po.setBkRem(dto.getBkRem());//备注
			po.setIsValid(dto.getIsValid());//是否有效（1：是，0：否） SYS0018
			po.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）（SYS0021）

			po.setCrtTm(dto.getCrtTm());//创建时间
			po.setCrtUsrId(dto.getCrtUsrId());//创建人
			po.setMdfTm(dto.getMdfTm());//修改时间
			po.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return po;
	}
	
	/**
	 * PO集合 转 DTO集合
	 * @param list List<AssChnBankAcc>
	 * @return List<AssChnBankAccDTO>
	 */
	public static List<AssChnBankAccDTO> toDTOList(List<AssChnBankAcc> list) {
		List<AssChnBankAccDTO>  voList = new ArrayList<AssChnBankAccDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AssChnBankAcc po : list) {
				voList.add(toDTO(po));
			}
		}
		return voList;
	}
}
